package com.sanshi.project.admin.api.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.github.yulichang.annotation.EntityMapping;
import java.util.List;

/**
 * 编码规则配置表
 *
 * @author nikon
 * @date 2023-11-10 19:51:11
 */
@Data
@TableName("code_rule")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "编码规则配置表")
public class CodeRuleEntity extends Model<CodeRuleEntity> {


	/**
	* 主键
	*/
    @TableId(type = IdType.ASSIGN_ID)
    @Schema(description="主键")
    private Long id;

	/**
	* 业务类型
	*/
    @Schema(description="业务类型")
    private String type;

	/**
	* 名称
	*/
    @Schema(description="名称")
    private String name;

	/**
	 * 字符串数量
	 */
	@Schema(description="字符串数量")
	private Integer strNum;

	/**
	* 连接串数量
	*/
    @Schema(description="连接串数量")
    private Integer connectorNum;

	/**
	* 日期时间数量
	*/
    @Schema(description="日期时间数量")
    private Integer timeNum;


	/**
	 * 流水号数量
	 */
	@Schema(description="流水号数量")
	private Integer sortNum;

	/**
	* 随机数数量
	*/
    @Schema(description="随机数数量")
    private Integer randomNum;

	/**
	* 是否记录【0否，1是】
	*/
    @Schema(description="是否记录【0否，1是】")
    private String isRecord;

	/**
	* 示例结果
	*/
    @Schema(description="示例结果")
    private String example;

	/**
	* 备注
	*/
    @Schema(description="备注")
    private String remark;

	/**
	* 状态标记[0停用，1启用]
	*/
    @Schema(description="状态标记[0停用，1启用]")
    private String status;

	/**
	* 创建人
	*/
	@TableField(fill = FieldFill.INSERT)
    @Schema(description="创建人")
    private String createBy;

	/**
	* 创建时间
	*/
	@TableField(fill = FieldFill.INSERT)
    @Schema(description="创建时间")
    private LocalDateTime createTime;

	/**
	* 更新人
	*/
	@TableField(fill = FieldFill.INSERT_UPDATE)
    @Schema(description="更新人")
    private String updateBy;

	/**
	* 更新时间
	*/
	@TableField(fill = FieldFill.INSERT_UPDATE)
    @Schema(description="更新时间")
    private LocalDateTime updateTime;

	/**
	* 删除标记【0未删除，1已删】
	*/
    @TableLogic
		@TableField(fill = FieldFill.INSERT)
    @Schema(description="删除标记【0未删除，1已删】")
    private String delFlag;

	/**
	* 租户号
	*/
    @Schema(description="租户号")
    private Long tenantId;
    @ExcelIgnore
    @TableField(exist = false)
    @EntityMapping(thisField = "id", joinField = "codeRuleId")
    private List<CodeRuleItemEntity> codeRuleItemList;
}